home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / treiber / grafik / pine / pt540 / nt35 / oemsetup.inf < prev    next >
INI File  |  1995-06-10  |  28KB  |  677 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "Trident 94x0AGi 800x600x4 56Hz"    = T94x0AGi,    4, 800,  600   , 56 , 0
  44.     "Trident 94x0AGi 800x600x4 60Hz"    = T94x0AGi,    4, 800,  600   , 60 , 0
  45.     "Trident 94x0AGi 800x600x4 72Hz"    = T94x0AGi,    4, 800,  600   , 72 , 0
  46.     "Trident 94x0AGi 800x600x4 75Hz"    = T94x0AGi,    4, 800,  600   , 75 , 0
  47. ;   "Trident 94x0AGi 800x600x4 85Hz"    = T94x0AGi,    4, 800,  600   , 85 , 0
  48.     "Trident 94x0AGi 1024x768x4 43Hz"   = T94x0AGi,    4, 1024, 768   , 43 , 1
  49.     "Trident 94x0AGi 1024x768x4 60Hz"   = T94x0AGi,    4, 1024, 768   , 60 , 0
  50.     "Trident 94x0AGi 1024x768x4 70Hz"   = T94x0AGi,    4, 1024, 768   , 70 , 0
  51. ;   "Trident 94x0AGi 1024x768x4 75Hz"   = T94x0AGi,    4, 1024, 768   , 75 , 0
  52. ;   "Trident 94x0AGi 1024x768x4 85Hz"   = T94x0AGi,    4, 1024, 768   , 85 , 0
  53.     "Trident 94x0AGi 1280x1024x4 43Hz"  = T94x0AGi,    4, 1280, 1024  , 43 , 1
  54.     "Trident 94x0AGi 1280x1024x4 60Hz"  = T94x0AGi,    4, 1280, 1024  , 60 , 0
  55.     "Trident 94x0AGi 1600x1200x4 43Hz"  = T94x0AGi,    4, 1600, 1200  , 43 , 1
  56.     "Trident 94x0AGi 640x480x8 60Hz"    = T94x0AGi,    8, 640,  480   , 60 , 0
  57.     "Trident 94x0AGi 640x480x8 72Hz"    = T94x0AGi,    8, 640,  480   , 72 , 0
  58. ;   "Trident 94x0AGi 640x480x8 85Hz"    = T94x0AGi,    8, 640,  480   , 85 , 0
  59.     "Trident 94x0AGi 800x600x8 56Hz"    = T94x0AGi,    8, 800,  600   , 56 , 0
  60.     "Trident 94x0AGi 800x600x8 60Hz"    = T94x0AGi,    8, 800,  600   , 60 , 0
  61.     "Trident 94x0AGi 800x600x8 72Hz"    = T94x0AGi,    8, 800,  600   , 72 , 0
  62.     "Trident 94x0AGi 800x600x8 75Hz"    = T94x0AGi,    8, 800,  600   , 75 , 0
  63. ;   "Trident 94x0AGi 800x600x8 85Hz"    = T94x0AGi,    8, 800,  600   , 85 , 0
  64.     "Trident 94x0AGi 1024x768x8 43Hz"   = T94x0AGi,    8, 1024, 768   , 43 , 1
  65.     "Trident 94x0AGi 1024x768x8 60Hz"   = T94x0AGi,    8, 1024, 768   , 60 , 0
  66.     "Trident 94x0AGi 1024x768x8 70Hz"   = T94x0AGi,    8, 1024, 768   , 70 , 0
  67.     "Trident 94x0AGi 1024x768x8 75Hz"   = T94x0AGi,    8, 1024, 768   , 75 , 0
  68.     "Trident 94x0AGi 1024x768x8 85Hz"   = T94x0AGi,    8, 1024, 768   , 85 , 0
  69.     "Trident 94x0AGi 1280x1024x8 43Hz"  = T94x0AGi,    8, 1280, 1024  , 43 , 1
  70.     "Trident 94x0AGi 1280x1024x8 60Hz"  = T94x0AGi,    8, 1280, 1024  , 60 , 0
  71.     "Trident 94x0AGi 1600x1200x8 43Hz"  = T94x0AGi,    8, 1600, 1200  , 43 , 1
  72.     "Trident 94x0AGi 640x480x16 60Hz"   = T94x0AGi,   16, 640,  480   , 60 , 0
  73.     "Trident 94x0AGi 640x480x16 72Hz"   = T94x0AGi,   16, 640,  480   , 72 , 0
  74. ;   "Trident 94x0AGi 640x480x16 85Hz"   = T94x0AGi,   16, 640,  480   , 85 , 0
  75.     "Trident 94x0AGi 800x600x16 56Hz"   = T94x0AGi,   16, 800,  600   , 56 , 0
  76.     "Trident 94x0AGi 800x600x16 60Hz"   = T94x0AGi,   16, 800,  600   , 60 , 0
  77.     "Trident 94x0AGi 800x600x16 72Hz"   = T94x0AGi,   16, 800,  600   , 72 , 0
  78.     "Trident 94x0AGi 800x600x16 75Hz"   = T94x0AGi,   16, 800,  600   , 75 , 0
  79.     "Trident 94x0AGi 800x600x16 85Hz"   = T94x0AGi,   16, 800,  600   , 85 , 0
  80.     "Trident 94x0AGi 1024x768x16 43Hz"  = T94x0AGi,   16, 1024, 768   , 43 , 1
  81.     "Trident 94x0AGi 1024x768x16 60Hz"  = T94x0AGi,   16, 1024, 768   , 60 , 0
  82.     "Trident 94x0AGi 1024x768x16 70Hz"  = T94x0AGi,   16, 1024, 768   , 70 , 0
  83.     "Trident 94x0AGi 1024x768x16 75Hz"  = T94x0AGi,   16, 1024, 768   , 75 , 0
  84.     "Trident 94x0AGi 1024x768x16 85Hz"  = T94x0AGi,   16, 1024, 768   , 85 , 0
  85.     "Trident 94x0AGi 640x480x24 60Hz"   = T94x0AGi,   24, 640,  480   , 60 , 0
  86.     "Trident 94x0AGi 640x480x24 75Hz"   = T94x0AGi,   24, 640,  480   , 75 , 0
  87.     "Trident 94x0AGi 640x480x24 85Hz"   = T94x0AGi,   24, 640,  480   , 85 , 0
  88.     "Trident 94x0AGi 800x600x24 56Hz"   = T94x0AGi,   24, 800,  600   , 56 , 0
  89.     "Trident 94x0AGi 800x600x24 60Hz"   = T94x0AGi,   24, 800,  600   , 60 , 0
  90.     "Trident 94x0AGi 800x600x24 72Hz"   = T94x0AGi,   24, 800,  600   , 72 , 0
  91.     "Trident 94x0AGi 800x600x24 75Hz"   = T94x0AGi,   24, 800,  600   , 75 , 0
  92.     "Trident 94x0AGi 1024x768x24 43Hz"  = T94x0AGi,   24, 1024, 768   , 43 , 1
  93.  
  94. ;
  95. ; This maps detected options into the options we support
  96. ;
  97. ; Format: DetectedOption = MappedOption
  98. ;
  99.  
  100. [MapOfOptions]
  101.     "VGA"                       = "VGA"
  102.     "COMPAQ AVGA"               = "VGA"
  103.     "COMPAQ AGB"                = "VGA"
  104.     "8514 MONITOR UNKNOWN"      = "VGA"
  105.     "8514 VGA MONITOR"          = "VGA"
  106.     "8514 8503 MONO"            = "VGA"
  107.     "8514 8514 GAD"             = "VGA"
  108.     "GENOA VGA"                 = "VGA"
  109.     "VIDEO7 VGA DRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  110.     "VIDEO7 VGA VRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  111.     "Trident VGA"               = "VGA"
  112.     "Trident VGA 9100"          = "VGA"
  113.     "PARADISE VGA"              = "VGA"
  114.     "PARADISE VGA PROM"         = "VGA"
  115.     "PARADISE VGA CHIP 1F"      = "VGA"
  116.     "ATI VGA"                   = "VGA"
  117.     "ATI VGA WONDDER3"          = "VGA"
  118.     "TSENGLAB VGA ET3000"       = "VGA"
  119.     "TSENGLAB VGA ET4000"       = "TSENGLAB VGA ET4000 640x480x4x60"
  120.     "CIRRUS VGA"                = "VGA"
  121.     "CIRRUS VGA 610-620 REVC"   = "VGA"
  122.     "XGA"                       = "XGA 640x480x8"
  123.     "DELL DGX"                  = "DELL DGX 640x480x8"
  124.     "S3 VGA"                    = "S3 VGA 640x480x8"
  125.     "PRODESIGNER II"            = "TSENGLAB VGA ET4000 640x480x4x60"
  126.  
  127.  
  128. ;
  129. ; Order of the information:
  130. ;
  131. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  132. ;
  133.  
  134. [MiniportDrivers]
  135.     T94x0AGi   = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11,  {vga, agi, triuln}, 1 , %SystemRoot%\System32\IoLogMsg.dll , 7
  136.  
  137.  
  138. ;-----------------------------------------------------------------------
  139. ; OPTION TEXT SECTION
  140. ; -------------------
  141. ; These are text strings used to identify the option to the user.  There
  142. ; are separate sections for each language supported.  The format of the
  143. ; section name is "OptionsText" concatenated with the Language represented
  144. ; by the section.
  145. ;
  146. ;-----------------------------------------------------------------------
  147.  
  148. [OptionsTextENG]
  149.     "Trident 94x0AGi 800x600x4 56Hz"    = "Trident 94x0AGi 800x600, 16 colors, 56Hz"
  150.     "Trident 94x0AGi 800x600x4 60Hz"    = "Trident 94x0AGi 800x600, 16 colors, 60Hz"
  151.     "Trident 94x0AGi 800x600x4 72Hz"    = "Trident 94x0AGi 800x600, 16 colors, 72Hz"
  152.     "Trident 94x0AGi 800x600x4 75Hz"    = "Trident 94x0AGi 800x600, 16 colors, 75Hz"
  153. ;   "Trident 94x0AGi 800x600x4 85Hz"    = "Trident 94x0AGi 800x600, 16 colors, 85Hz"
  154.     "Trident 94x0AGi 1024x768x4 43Hz"   = "Trident 94x0AGi 1024x768, 16 colors, 43Hz"
  155.     "Trident 94x0AGi 1024x768x4 60Hz"   = "Trident 94x0AGi 1024x768, 16 colors, 60Hz"
  156.     "Trident 94x0AGi 1024x768x4 70Hz"   = "Trident 94x0AGi 1024x768, 16 colors, 70Hz"
  157. ;   "Trident 94x0AGi 1024x768x4 75Hz"   = "Trident 94x0AGi 1024x768, 16 colors, 75Hz"
  158. ;   "Trident 94x0AGi 1024x768x4 85Hz"   = "Trident 94x0AGi 1024x768, 16 colors, 85Hz"
  159.     "Trident 94x0AGi 1280x1024x4 43Hz"  = "Trident 94x0AGi 1280x1024, 16 colors, 43Hz"
  160.     "Trident 94x0AGi 1280x1024x4 60Hz"  = "Trident 94x0AGi 1280x1024, 16 colors, 60Hz"
  161.     "Trident 94x0AGi 1600x1200x4 43Hz"  = "Trident 94x0AGi 1600x1200, 16 colors, 43Hz"
  162.     "Trident 94x0AGi 640x480x8 60Hz"    = "Trident 94x0AGi 640x480, 256 colors, 60Hz"
  163.     "Trident 94x0AGi 640x480x8 72Hz"    = "Trident 94x0AGi 640x480, 256 colors, 72Hz"
  164. ;   "Trident 94x0AGi 640x480x8 85Hz"    = "Trident 94x0AGi 640x480, 256 colors, 85Hz"
  165.     "Trident 94x0AGi 800x600x8 56Hz"    = "Trident 94x0AGi 800x600, 256 colors, 56Hz"
  166.     "Trident 94x0AGi 800x600x8 60Hz"    = "Trident 94x0AGi 800x600, 256 colors, 60Hz"
  167.     "Trident 94x0AGi 800x600x8 72Hz"    = "Trident 94x0AGi 800x600, 256 colors, 72Hz"
  168.     "Trident 94x0AGi 800x600x8 75Hz"    = "Trident 94x0AGi 800x600, 256 colors, 75Hz"
  169. ;   "Trident 94x0AGi 800x600x8 85Hz"    = "Trident 94x0AGi 800x600, 256 colors, 85Hz"
  170.     "Trident 94x0AGi 1024x768x8 43Hz"   = "Trident 94x0AGi 1024x768, 256 colors, 43Hz"
  171.     "Trident 94x0AGi 1024x768x8 60Hz"   = "Trident 94x0AGi 1024x768, 256 colors, 60Hz"
  172.     "Trident 94x0AGi 1024x768x8 70Hz"   = "Trident 94x0AGi 1024x768, 256 colors, 70Hz"
  173.     "Trident 94x0AGi 1024x768x8 75Hz"   = "Trident 94x0AGi 1024x768, 256 colors, 75Hz"
  174.     "Trident 94x0AGi 1024x768x8 85Hz"   = "Trident 94x0AGi 1024x768, 256 colors, 85Hz"
  175.     "Trident 94x0AGi 1280x1024x8 43Hz"  = "Trident 94x0AGi 1280x1024, 256 colors, 43Hz"
  176.     "Trident 94x0AGi 1280x1024x8 60Hz"  = "Trident 94x0AGi 1280x1024, 256 colors, 60Hz"
  177.     "Trident 94x0AGi 1600x1200x8 43Hz"  = "Trident 94x0AGi 1600x1200, 256 colors, 43Hz"
  178.     "Trident 94x0AGi 640x480x16 60Hz"   = "Trident 94x0AGi 640x480, 65k colors, 60Hz"
  179.     "Trident 94x0AGi 640x480x16 72Hz"   = "Trident 94x0AGi 640x480, 65k colors, 72Hz"
  180. ;   "Trident 94x0AGi 640x480x16 85Hz"   = "Trident 94x0AGi 640x480, 65k colors, 85Hz"
  181.     "Trident 94x0AGi 800x600x16 56Hz"   = "Trident 94x0AGi 800x600, 65k colors, 56Hz"
  182.     "Trident 94x0AGi 800x600x16 60Hz"   = "Trident 94x0AGi 800x600, 65k colors, 60Hz"
  183.     "Trident 94x0AGi 800x600x16 72Hz"   = "Trident 94x0AGi 800x600, 65k colors, 72Hz"
  184.     "Trident 94x0AGi 800x600x16 75Hz"   = "Trident 94x0AGi 800x600, 65k colors, 75Hz"
  185.     "Trident 94x0AGi 800x600x16 85Hz"   = "Trident 94x0AGi 800x600, 65k colors, 85Hz"
  186.     "Trident 94x0AGi 1024x768x16 43Hz"  = "Trident 94x0AGi 1024x768, 65k colors, 43Hz"
  187.     "Trident 94x0AGi 1024x768x16 60Hz"  = "Trident 94x0AGi 1024x768, 65k colors, 60Hz"
  188.     "Trident 94x0AGi 1024x768x16 70Hz"  = "Trident 94x0AGi 1024x768, 65k colors, 70Hz"
  189.     "Trident 94x0AGi 1024x768x16 75Hz"  = "Trident 94x0AGi 1024x768, 65k colors, 75Hz"
  190.     "Trident 94x0AGi 1024x768x16 85Hz"  = "Trident 94x0AGi 1024x768, 65k colors, 85Hz"
  191.     "Trident 94x0AGi 640x480x24 60Hz"   = "Trident 94x0AGi 640x480, 16M colors, 60Hz"
  192.     "Trident 94x0AGi 640x480x24 75Hz"   = "Trident 94x0AGi 640x480, 16M colors, 75Hz"
  193.     "Trident 94x0AGi 640x480x24 85Hz"   = "Trident 94x0AGi 640x480, 16M colors, 85Hz"
  194.     "Trident 94x0AGi 800x600x24 56Hz"   = "Trident 94x0AGi 800x600, 16M colors, 56Hz"
  195.     "Trident 94x0AGi 800x600x24 60Hz"   = "Trident 94x0AGi 800x600, 16M colors, 60Hz"
  196.     "Trident 94x0AGi 800x600x24 72Hz"   = "Trident 94x0AGi 800x600, 16M colors, 72Hz"
  197.     "Trident 94x0AGi 800x600x24 75Hz"   = "Trident 94x0AGi 800x600, 16M colors, 75Hz"
  198.     "Trident 94x0AGi 1024x768x24 43Hz"  = "Trident 94x0AGi 1024x768, 16M colors, 43Hz"
  199.  
  200.  
  201. ;---------------------------------------------------------------------------
  202. ; 1. Identify
  203. ;
  204. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  205. ;                as we are choosing currently.
  206. ;
  207. ; INPUT:         None
  208. ;
  209. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  210. ;                $($R1): Option Type (COMPUTER ...)
  211. ;                $($R2): Diskette description
  212. ;---------------------------------------------------------------------------
  213.  
  214. [Identify]
  215.     ;
  216.     ;
  217.     read-syms Identification
  218.  
  219.     set Status     = STATUS_SUCCESSFUL
  220.     set Identifier = $(OptionType)
  221.     set Media      = #("Source Media Descriptions", 1, 1)
  222.  
  223.     Return $(Status) $(Identifier) $(Media)
  224.  
  225.  
  226.  
  227. ;------------------------------------------------------------------------
  228. ; 2. ReturnOptions:
  229. ;
  230. ; DESCRIPTION:   To return the option list supported by this INF and the
  231. ;                localised text list representing the options.
  232. ;
  233. ;
  234. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  235. ;
  236. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  237. ;                                STATUS_NOLANGUAGE
  238. ;                                STATUS_FAILED
  239. ;
  240. ;                $($R1): Option List
  241. ;                $($R2): Option Text List
  242. ;------------------------------------------------------------------------
  243.  
  244. [ReturnOptions]
  245.     ;
  246.     ;
  247.     set Status        = STATUS_FAILED
  248.     set OptionList     = {}
  249.     set OptionTextList = {}
  250.  
  251.     ;
  252.     ; Check if the language requested is supported
  253.     ;
  254.     set LanguageList = ^(LanguagesSupported, 1)
  255.     Ifcontains(i) $($0) in $(LanguageList)
  256.         goto returnoptions
  257.     else
  258.         set Status = STATUS_NOLANGUAGE
  259.         goto finish_ReturnOptions
  260.     endif
  261.  
  262.     ;
  263.     ; form a list of all the options and another of the text representing
  264.     ;
  265.  
  266. returnoptions = +
  267.     set OptionList     = ^(Options, 0)
  268.     set OptionTextList = ^(OptionsText$($0), 1)
  269.     set Status         = STATUS_SUCCESSFUL
  270.  
  271. finish_ReturnOptions = +
  272.     Return $(Status) $(OptionList) $(OptionTextList)
  273.  
  274.  
  275.  
  276. ;---------------------------------------------------------------------------
  277. ; MapToSupportedOption
  278. ;
  279. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  280. ;                option which represents it.
  281. ;
  282. ; INPUT:         $($0): Option
  283. ;
  284. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  285. ;                $($R1): Mapped Option
  286. ;
  287. ;---------------------------------------------------------------------------
  288.  
  289. [MapToSupportedOption]
  290.     ;
  291.     set Status = STATUS_FAILED
  292.     set MappedOption = $($0)
  293.  
  294.     ;
  295.     ; If the option is one we can support using one of our standard options
  296.     ; then map it to the standard option else map it to the default option
  297.     ; which is VGA.
  298.     ;
  299.  
  300.     set OptionList = ^(MapOfOptions, 0)
  301.     ifcontains $($0) in $(OptionList)
  302.         set MappedOption = #(MapOfOptions, $($0), 1)
  303.     else
  304.         set MappedOption = "VGA"
  305.     endif
  306.  
  307.     set Status = STATUS_SUCCESSFUL
  308.     Return $(Status) $(MappedOption)
  309.  
  310.  
  311.  
  312. [ServicesEntry]
  313.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  314.  
  315.  
  316. ;
  317. ; InstallOption:
  318. ;
  319. ; FUNCTION:  To copy files representing Options
  320. ;            To configure the installed option
  321. ;            To update the registry for the installed option
  322. ;
  323. ; INPUT:     $($0):  Language to use
  324. ;            $($1):  OptionID to install
  325. ;            $($2):  SourceDirectory
  326. ;            $($3):  AddCopy  (YES | NO)
  327. ;            $($4):  DoCopy   (YES | NO)
  328. ;            $($5):  DoConfig (YES | NO)
  329. ;
  330. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  331. ;                            STATUS_NOLANGUAGE |
  332. ;                            STATUS_USERCANCEL |
  333. ;                            STATUS_FAILED
  334. ;
  335.  
  336. [InstallOption]
  337.  
  338.     ;
  339.     ; Set default values for
  340.     ;
  341.     set Status       = STATUS_FAILED
  342.     set DrivesToFree = {}
  343.  
  344.     ;
  345.     ; extract parameters
  346.     ;
  347.     set Option   = $($1)
  348.     set SrcDir   = $($2)
  349.     set AddCopy  = $($3)
  350.     set DoCopy   = $($4)
  351.     set DoConfig = $($5)
  352.  
  353.     ;
  354.     ; Check if the language requested is supported
  355.     ;
  356.     set LanguageList = ^(LanguagesSupported, 1)
  357.     Ifcontains(i) $($0) in $(LanguageList)
  358.     else
  359.         set Status = STATUS_NOLANGUAGE
  360.         goto finish_InstallOption
  361.     endif
  362.     read-syms Strings$($0)
  363.  
  364.     ;
  365.     ; check to see if Option is supported.
  366.     ;
  367.  
  368.     set OptionList = ^(Options, 0)
  369.     ifcontains $(Option) in $(OptionList)
  370.     else
  371.         goto finish_InstallOption
  372.     endif
  373.     set OptionList = ""
  374.  
  375.     ;
  376.     ; Option has been defined already
  377.     ;
  378.     set MiniportDriver    = #(Options, $(Option), 1)
  379.     set BitsPerPel        = #(Options, $(Option), 2)
  380.     set XResolution       = #(Options, $(Option), 3)
  381.     set YResolution       = #(Options, $(Option), 4)
  382.     set VRefresh          = #(Options, $(Option), 5)
  383.     set Interlaced        = #(Options, $(Option), 6)
  384.     set FrameBufferAddress = 60
  385.  
  386.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  387.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  388.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  389.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  390.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  391.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  392.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  393.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  394.  
  395.     read-syms ServicesEntry
  396.     detect    ServicesEntry
  397.  
  398. installtheoption = +
  399.  
  400.     ;
  401.     ; Code to add files to copy list
  402.     ;
  403.  
  404.     ifstr(i) $(AddCopy) == "YES"
  405.         set DoActualCopy = NO
  406.         set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  407.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  408.         ifstr(i) $(STATUS) == NO
  409.             set DoActualCopy = YES
  410.             goto addfiles
  411.         endif
  412.         ForListDo $(InstalledDisplays)
  413.             set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  414.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  415.             ifstr(i) $(STATUS) == NO
  416.                 set DoActualCopy = YES
  417.             endif
  418.         EndForListDo
  419.  
  420. addfiles = +
  421.         ifstr(i) $(DoActualCopy) == NO
  422.             shell "subroutn.inf" DriversExist $($0) $(String1)
  423.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  424.                 Debug-Output "VIDEO.INF: shelling DriversExist failed"
  425.                 goto finish_InstallOption
  426.             endif
  427.  
  428.             ifstr(i) $($R0) == STATUS_CURRENT
  429.             else-ifstr(i) $($R0) == STATUS_NEW
  430.                 set DoActualCopy = YES
  431.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  432.                 Debug-Output "VIDEO.INF: User cancelled video installation"
  433.                 goto finish_InstallOption
  434.             else
  435.                 Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  436.                 goto finish_InstallOption
  437.             endif
  438.         endif
  439.  
  440.         ifstr(i) $(DoActualCopy) == YES
  441.  
  442.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  443.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  444.                 Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  445.                 goto finish_InstallOption
  446.             endif
  447.  
  448.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  449.                 set SrcDir = $($R1)
  450.                 ifstr(i) $($R2) != ""
  451.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  452.                 endif
  453.             else
  454.                 Debug-Output "VIDEO.INF: User cancelled asking source."
  455.                 goto finish_InstallOption
  456.             endif
  457.  
  458.             install Install-AddCopyOption
  459.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  460.                 Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  461.                 goto finish_InstallOption
  462.             endif
  463.         else
  464.             set DoCopy = NO
  465.         endif
  466.  
  467.     endif
  468.  
  469.     ifstr(i) $(DoCopy) == "YES"
  470.         read-syms ProgressCopy$($0)
  471.         install Install-DoCopyOption
  472.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  473.             Debug-Output "Copying files failed"
  474.             goto finish_InstallOption
  475.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  476.             set Status = STATUS_USERCANCEL
  477.             goto finish_InstallOption
  478.         endif
  479.     endif
  480.  
  481.     ifstr(i) $(DoConfig) == "YES"
  482.  
  483.         ;
  484.         ; first run a privilege check on modifying the setup node
  485.         ;
  486.  
  487.         shell "registry.inf" CheckSetupModify
  488.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  489.             goto finish_InstallOption
  490.         endif
  491.  
  492.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  493.             goto finish_InstallOption
  494.         endif
  495.  
  496.         ;
  497.         ; first make a new video entry, the entry is created automatically
  498.         ; enabled
  499.         ;
  500.  
  501.         set ServiceNode   = $(MiniportDriver)
  502.         set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  503.  
  504.         set ServicesValues   = { +
  505.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  506.                 {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  507.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  508.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  509.                 {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  510.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  511.                 }
  512.  
  513.         set ParametersValues = { +
  514.                 {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, +
  515.                 {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)     }, +
  516.                 {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)        }, +
  517.                 {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)       }, +
  518.                 {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)       }  +
  519.                 {DefaultSettings.FrameBuffer, 0, $(!REG_VT_DWORD),    $(FrameBufferAddress)}  +
  520.                 }
  521.  
  522.         ifstr(i) $(VRefresh) != ""
  523.             set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  524.             set ParametersValue = >($(ParametersValue), $(VRefreshValue))
  525.         endif
  526.  
  527.         ifstr(i) $(Interlaced) != ""
  528.             set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  529.             set ParametersValue = >($(ParametersValue), $(InterlacedValue))
  530.         endif
  531.  
  532.         set DeviceValues     = {}
  533.         set EventLogValues   = { +
  534.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  535.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  536.                 }
  537.  
  538.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  539.                                                 $(ServicesValues)   +
  540.                                                 $(ParametersValues) +
  541.                                                 $(DeviceValues)     +
  542.                                                 $(EventLogValues)   +
  543.                                                 Device0
  544.  
  545.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  546.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  547.             goto finish_InstallOption
  548.         endif
  549.  
  550.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  551.             Debug-Output "MakeServicesEntry failed for video"
  552.             goto finish_InstallOption
  553.         endif
  554.  
  555.         ;
  556.         ;
  557.         ; then disable the previous video entry
  558.         ;
  559.  
  560.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  561.             ifstr(i) $(CurrentEntry) != VGA
  562.                 ifstr(i) $(CurrentEntry) != ""
  563.                     shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  564.  
  565.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  566.                         Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  567.                         goto errorconfig
  568.                     endif
  569.  
  570.                     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  571.                         Debug-Output "DisableServices entry failed"
  572.                     endif
  573.                 endif
  574.             endif
  575.         endif
  576.  
  577.         goto configdone
  578.  
  579. errorconfig = +
  580.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  581.             shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  582.             ifstr(i) $(CurrentEntry) != ""
  583.                 shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  584.             endif
  585.         endif
  586.         goto finish_InstallOption
  587.  
  588. configdone = +
  589.  
  590.     endif
  591.  
  592.     set Status = STATUS_SUCCESSFUL
  593.  
  594. finish_InstallOption = +
  595.     ForListDo $(DrivesToFree)
  596.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  597.     EndForListDo
  598.  
  599.     Return $(Status)
  600.  
  601.  
  602. [Install-AddCopyOption]
  603.  
  604.     set STF_VITAL = ""
  605.     ;
  606.     ; Add the files to the copy list
  607.     ;
  608.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  609.                                   $(MiniportDriver)              +
  610.                                   $(SrcDir)                      +
  611.                                   $(!STF_WINDOWSSYSPATH)\drivers
  612.  
  613.     ForListDo $(InstalledDisplays)
  614.         AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  615.                                       $($)                       +
  616.                                       $(SrcDir)                  +
  617.                                       $(!STF_WINDOWSSYSPATH)
  618.  
  619.     EndForListDo
  620.  
  621.     exit
  622.  
  623.  
  624. [Install-DoCopyOption]
  625.  
  626.     ;
  627.     ; Copy files in the copy list
  628.     ;
  629.     CopyFilesInCopyList
  630.     exit
  631.  
  632. ;**************************************************************************
  633. ; PROGRESS GUAGE VARIABLES
  634. ;**************************************************************************
  635.  
  636. [ProgressCopyENG]
  637.     ProCaption   = "Windows NT Setup"
  638.     ProCancel    = "Cancel"
  639.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  640.                    "to cancel copying files?"
  641.     ProCancelCap = "Setup Message"
  642.     ProText1     = "Copying:"
  643.     ProText2     = "To:"
  644.  
  645. [StringsENG]
  646.     String1 = "Display"
  647.     String2 = "Please enter the full path to the OEM Display "+
  648.               "driver files.  Then choose Continue."
  649.  
  650. ;-----------------------------------------------------------------------
  651. ; SOURCE MEDIA DESCRIPTIONS
  652. ; -------------------------
  653. ; The OEM should list all the diskette labels here.  The source media
  654. ; description is used during copy to prompt the user for a diskette
  655. ; if the source is diskettes.
  656. ;
  657. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  658. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  659. ;     ...
  660. ;-----------------------------------------------------------------------
  661.  
  662. ;--------------------------------------------------------------------
  663. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  664. ; SPREAD SHEETS
  665. ;--------------------------------------------------------------------
  666.  
  667. [Source Media Descriptions]
  668.     1  = "OEM DISK (VIDEO)"  , TAGFILE = nt35\agi
  669.  
  670. [Files-DisplayDLLs]
  671. agi    = 1, agi.dll, SIZE=177824
  672. triuln = 1, triuln.dll, SIZE=177824
  673. vga    = 1, VGA.DLL, !COPY
  674.  
  675. [Files-DisplayMiniportDrivers]
  676. T94x0AGi = 1, agi.sys, SIZE=111999
  677.